#ifndef JAVAWRITER_H
#define JAVAWRITER_H

#include <QFile>
#include <QDir>

#include "io/writer/abstractwriter.h"
#include "io/writer/java/javablockcomment.h"
#include "io/writer/java/bluejproject.h"
#include "uml/umldiritem.h"
#include "uml/class/umlclassitem.h"

#define PLACEHOLDER_CLASS_BODY "PLACEHOLDER_CLASS_BODY"

class JavaWriter : public AbstractWriter
{
public:
    JavaWriter();

    void run();

protected:
    void writeDir(UmlDirItem *dir, QDir *filePath);
    void writeClass(UmlClassItem *classItem, QString &path);
    void writeClassAttributes(UmlClassItem *classItem, QByteArray *content);
    void writeClassMethod(UmlClassItem *classItem, QByteArray *content);
    void writeAssociations(UmlClassItem *classItem, QByteArray *content);
};

#endif // JAVAWRITER_H
